Deriving Imperative Code from Functional Programs Patrice Quinton, Sanjay Rajopadhye, Doran Wilde
نویسندگان
چکیده
Alpha is a data parallel functional language which has the capability of specifying algorithms at a very high level. Our ultimate objective is to generate eecient parallel imperative code from an Alpha program. In this paper, we discuss the related problem of generating eecient single processor imperative code. Analysis techniques that were developed for the synthesis of systolic arrays are extended and adapted for the compilation of functional programming languages. We also demonstrate how a transformational methodology can be used as a compilation engine to transform an Alpha program to a sequential form. C{code is then generated using a straightforward pretty printer from the sequential form Alpha program. The C{code may then be compiled to eeciently execute the program. Derivation de code imperatif a partir d'un programme fonctionnel R esum e : Alpha est un langage fonctionnel a parall elisme de donn ees qui permet de sp eciier des algorithmes a un tr es haut niveau d'abstraction. Notre objectif ultime est de produire du code imp eratif parall ele eecace, a partir d'un programme Alpha. Dans ce rapport, nous traitons le probl eme, li e a cet objectif, d'engendrer du code imp eratif eecace pour un seul processeur. Les techniques d'analyse qui ont et e d evelopp ees pour la synth ese d'architectures systoliques sont etendues et adapt ees a la compilation de langages de programmation fonctionnels. Nous montrons aussi comment une m ethodologie transfor-mationnelle peut ^ etre utilis ee comme moteur de compilation pour passer d'un programme Alpha a une forme s equentielle. A partir de cette forme, on peut g en erer du code C a l'aide d'un simple pretty-printer. Ce code peut ^ etre compil e aan d'ex ecuter le programme de faa con eecace.
منابع مشابه
On deriving data parallel code from a functional program
We discuss a translation methodology for transforming a high level algorithmic speciication written in Alpha to an imperative data parallel language. We informally introduce the Alpha language with the aid of an example and explain how it is adapted for doing static analysis and transformation. An Alpha program can be naively compiled 11] using applicative caching. Our compilation method makes ...
متن کاملUsing Static Analysis to Derive Imperative Code from Alpha Patrice Quinton, Sanjay Rajopadhye, Doran Wilde
In this article, we demonstrate a translation methodology which transforms a high level algorithmic speciication written in the Alpha language to an imperative data parallel language. Alpha is a functional language which was designed to facilitate the kinds of static analyses needed for doing regular array synthesis. We show that the same methods which are used for solving regular array synthes...
متن کاملMemory Reuse Analysis in the Polyhedral
In the context of developing a compiler for a Alpha, a functional data-parallel language based on systems of aane recurrence equations (SAREs), we address the problem of transforming scheduled single-assignment code to multiple assignment code. We show how the polyhedral model allows us to statically compute the lifetimes of program variables, and thus enables us to derive necessary and suucien...
متن کاملThe Naive Execution of Affine Recurrence Equations Patrice Quinton, Sanjay Rajopadhye, Doran Wilde
In recognition of the fundamental relation between regular arrays and systems of aane recurrence equations, the Alpha language was developed as the basis of a computer aided design methodology for regular array architectures. Alpha is used to initially specify algorithms at a very high algorithmic level. Regular array architecures can then be derived from the algorithmic speciication using a tr...
متن کاملPatrice Quinton , Sanjay Rajopadhye , Tanguy Risset
We address the problem of computation upon Z Z-polyhedra which are intersections of polyhedra and integral lattices. We introduce a canonic representation for Z Z-polyhedra which allow to perform comparisons and transformations of Z Z-polyhedra with the help of a computational kernel on polyhedra. This contribution is a step toward the manipulation of images of polyhedra by aane functions, and ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1995